﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _4_2_委托_事件_多线程
{
    public delegate void MyDelegate();

    class DoSome
    {
        public void Invoke()
        {
            Console.WriteLine("[{0}] {1}", DateTime.Now, "public void Invoke()：方法被调用");
        }
    }

    internal class Program
    {
        static void Main(string[] args)
        {
            //doSome是对象代表申请的内存空间
            DoSome doSome = new DoSome();
            //通过对象访问非静态方法=>非静态方法在对象申请的内存空间当中,所以要通过对象去访问
            doSome.Invoke();

            //实例化委托=>保存并记录方法的内存地址
            MyDelegate myDelegate = new MyDelegate(doSome.Invoke);
            //通过委托间接调用:
            myDelegate.Invoke();

            Console.ReadKey();
        }
    }
}
